Patterns displayed on physical objects can be used to represent digital data. For example, one-dimensional bar codes have been used on external product packaging to identify a type of the product by a digital identifier. Alternative embodiments use two-dimensional patterns to represent digital data. For example, a “ShotCode,” implemented by OP3 AB of Sweden, is a circular pattern that encodes digital data. This circular pattern can be placed on marketing media, such that a person who is interested in the media can photograph the circular pattern to prompt a web browser at the person's disposal to access a particular website.
However, those patterns may occupy an area dedicated to providing the digital identifier that cannot be used for other displays. The patterns can also distract the human user's attention from the physical object, such as the marketing materials.
In yet another embodiment, two-dimensional marketing materials themselves are photographed as an image of low resolution pixels using a digital camera on a cellular telephone. The low resolution image is processed to recognize an identity of the two-dimensional marketing materials. Based on this identity, graphics or other information content can be transmitted to the cellular telephone of a user. However, the processing of the two-dimensional graphic may not be sufficiently robust to recognize its identity in commercial application.
Thus, it is desirable to encode a digital identifier in a pattern on an object that makes efficient use of the surface area of the object, and to encode data values associated with the digital identifier. It is further desirable to robustly decode the pattern to determine the digital identifier and the associated data.